/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.ideastec.mipyme.model.provincia;

import com.ideastec.mipyme.model.EntidadPersistible;
import com.ideastec.mipyme.model.Pais.Pais;
import com.ideastec.mipyme.model.localidad.Localidad;

import java.util.HashSet;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import java.util.Set;

/**
 * Entidad Provincia
 * @author Diego Rafael Graf
 */

public class Provincia extends EntidadPersistible{
    
    private String nombre;    
    private Pais pais;
    private Set<Localidad> localidades = new HashSet<Localidad>();
    
    public Provincia(){
        
    }
    
    public Provincia(Pais pais, String nombre){
        this.nombre = nombre;
        this.pais = pais;
    }
    
    public void setNombre(String nombre){
        this.nombre = nombre;
    }
    
    public String getNombre(){
        return this.nombre;
    }
    
    public void setPais(Pais pais){
        this.pais = pais;
    }
    
    public Pais getPais(){
        return this.pais;
    }
    
    public void setLocalidades(Set<Localidad> localidades){
        this.localidades = localidades;
    }
    
    public Set<Localidad> getLocalidades(){
        return this.localidades;
    }
    
    @Override
    public String toString(){
        return this.nombre;
    }
    
    @Override
    public boolean equals(Object objeto){
        if(objeto == null || !objeto.getClass().isAssignableFrom(Provincia.class)){
            return false;
        }else{
            Provincia provincia2 = (Provincia) objeto;
            return new EqualsBuilder().append(provincia2.toString(), this.toString()).isEquals();
        }
    }
    
    @Override
    public int hashCode(){
        return new HashCodeBuilder().append(this.toString()).append(this.toString()).toHashCode();
    }
    
    
}
